昨天我們確立了專案的主軸與30天藍圖,今天進入實作第一步:搭建雲端分析環境。
為了把精力聚焦在「數據探索」本身,避免卡在本機安裝 Python、設定環境變數或套件衝突的地獄中,我們全程使用 Google 提供的免費雲端運算平台 —— Google Colab。
一、決定工作環境:為什麼跳過本地端選Colab?
原本在考慮要在本機VS Code裝環境還是用Colab。考慮到之後可能會在不同電腦(學校、筆電)切換寫扣,加上這次主題聚焦在資料分析與視覺化,不需要跑超大模型,最後決定直接用Google Colab開局:
檔案直接綁在雲端硬碟,不用每次push/pull扣。
常用的pandas、seaborn、scipy雲端都預裝好了,省去一堆pip install繁瑣指令。
建立檔案命名為:Vision_Health_EDA_30Days.ipynb。
二、快速檢查預載套件版本
打開Notebook第一步,先跑一段腳本確認當前執行環境的套件版本:
執行後會看到各套件的版本號,確認內建套件完全正常。
三、Matplotlib繪圖中文亂碼與除錯
Google Colab伺服器使用的是Linux系統,預設沒有安裝中文字型。如果不做設定,後續畫圖時標籤上的繁體中文會全部變成白色方塊(豆腐塊 □□□)。
解決這個問題時我嘗試了兩種解法,中間還踩了一個語法雷:
一開始嘗試用系統指令安裝開源字型,但Matplotlib快取沒有即時更新,圖表依然是亂碼。
接著我改用直接下載Google思源黑體 .otf 檔的方式,結果在註冊字型時噴出了一個錯誤:
AttributeError: module 'matplotlib.font_manager' has no attribute 'font_manager'
回去看程式碼,發現我在最上方寫了:
import matplotlib.font_manager as fm
此時fm就已經代表font_manager模組了。但我後面卻寫成了fm.font_manager.addfont(...),等於重複呼叫了兩次,而且把fontManager的大寫打錯,才會跳出找不到屬性的錯誤。
最終解決解法(成功顯示中文):
修正為直接呼叫fm.fontManager.addfont(...),完整修復程式碼如下:
# 1.下載Google思源黑體(繁體中文)
!wget -O NotoSansTC-Regular.otf https://github.com/googlefonts/noto-cjk/raw/main/Sans/OTF/TraditionalChinese/NotoSansCJKtc-Regular.otf
# 2.載入套件並註冊字型
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
font_path = 'NotoSansTC-Regular.otf'
# 注意此處:fm.fontManager的M是大寫,前面不要重複接 font_manager
fm.fontManager.addfont(font_path)
font_prop = fm.FontProperties(fname=font_path)
# 設定全域字型與負號修正
plt.rcParams['font.family'] = font_prop.get_name()
plt.rcParams['axes.unicode_minus'] = False
# 3.重新繪製測試圖
plt.figure(figsize=(7, 3))
plt.plot([1, 2, 3, 4], [10, 18, 14, 25], marker='o', color='#1f77b4', linewidth=2)
plt.title("視力保健 EDA:Colab 中文圖表顯示測試", fontsize=14)
plt.xlabel("時間(週次)", fontsize=12)
plt.ylabel("用眼疲勞指數", fontsize=12)
plt.grid(True, linestyle="--", alpha=0.5)
plt.show()

執行後能看到折線圖的標題、X軸與Y軸順利顯示出清晰的中文字體。
四、今日進度總結